[Ubuntu 16.04]nginx反向代理¶
配置¶
参考:
使用指令proxy_pass
指定反向代理的服务器地址,在/etc/nginx/conf.d/
目录下添加配置文件test.conf
{
listen 80;
server_name localhost;
location /jk/ {
proxy_pass http://localhost:8080/jenkins/;
}
}
当URL
符合localhost/jenkins/
时,nginx
将会请求代理地址
注意:上面的代理服务器地址指定了资源地址为/jenkins/
,则该字段将替代location
匹配的参数/jk
。比如客户端请求地址为http://localhost/jk/page.html
,nginx
代理后的地址为http://localhost:8080/jenkins/page.html
所以上面代码也可以修改如下:
...
location /jenkins/ {
proxy_pass http://localhost:8080;
}
...
反向代理过程¶
nginx
安装在本地,所以当URL
输入localhost/jenkins/
时
- 解析域名为
IP
地址127.0.0.1
,请求本地nginx
进行处理 nginx
将URL
转换成http://localhost:8080/jenkins/
后再次请求nginx
获得html
数据后转发给浏览器
下面实现输入www.123.com/jenkins/
,反向代理到http://localhost/jenkins/
修改/etc/hosts
文件,将域名www.123.com
映射到nginx
服务器地址127.0.0.1
127.0.0.1 www.123.com
添加nginx
配置文件/etc/nginx/conf.d/test.conf
server {
listen 80;
server_name www.123.com;
location /jenkins/ {
proxy_pass http://localhost:8080/jenkins/;
}
}
热更新nginx
$ sudo nginx -s reload
在浏览器登录www.123.com/jenkins/
,即可登录本地安装的jenkins
如果不成功,可能是由于DNS
缓存的关系,需要清空浏览器缓存和系统缓存